using System;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace SharpWind.Scene.Cameras
{
	public class FirstPersonCamera : Camera
	{
		public override void Rotate( float x, float y, float z )
		{
			/*if( this.sceneNode != null )
			{
				Matrix rotateMatrix = Matrix.Identity;

				if( x != 0 )
				{
					rotateMatrix = Matrix.RotationAxis( this.right, Geometry.DegreeToRadian( x ) );

					this.look	= Vector3.TransformNormal( this.look, rotateMatrix );
					this.up		= Vector3.TransformNormal( this.up, rotateMatrix );

					this.viewIsDirty = true;
				}

				if( y != 0 )
				{
					//rotateMatrix = Matrix.RotationAxis( this.sceneObject.UpVector, Geometry.DegreeToRadian( y ) );

					this.right	= Vector3.TransformNormal( this.right, rotateMatrix );
					this.look	= Vector3.TransformNormal( this.look, rotateMatrix );
					this.up		= Vector3.TransformNormal( this.up, rotateMatrix );

					this.viewIsDirty = true;
				}

				if( z != 0 )
				{
					rotateMatrix = Matrix.RotationAxis( this.sceneObject.LookVector, Geometry.DegreeToRadian( z ) );

					this.position -= this.sceneObject.Position;
					this.position = Vector3.TransformCoordinate( this.position, rotateMatrix );

					this.position += this.sceneObject.Position;

					this.look  = Vector3.TransformNormal( this.look, rotateMatrix );
					this.right = Vector3.TransformNormal( this.right, rotateMatrix );
					this.up = Vector3.TransformNormal( this.up, rotateMatrix );

					this.viewIsDirty = true;
				}
			}*/
		}
	}
}
